GSList *state;
GSList *cur_selectors;
GHashTable *cur_properties;
+ GError *error;
};
enum ParserScope {
g_str_equal,
(GDestroyNotify) g_free,
(GDestroyNotify) property_value_free);
+
+ if (priv->error)
+ g_error_free (priv->error);
+ priv->error = NULL;
}
static void
while (!g_scanner_eof (priv->scanner))
{
GTokenType expected_token;
- GError *err = NULL;
css_provider_reset_parser (css_provider);
- expected_token = parse_rule (css_provider, priv->scanner, &err);
+ expected_token = parse_rule (css_provider, priv->scanner, &priv->error);
if (expected_token != G_TOKEN_NONE)
{
if (error != NULL)
{
result = FALSE;
- if (err)
- g_propagate_error (error, err);
+ if (priv->error)
+ g_propagate_error (error, priv->error);
else
g_set_error_literal (error,
GTK_CSS_PROVIDER_ERROR,
}
else
{
- scanner_report_warning (css_provider, expected_token, err);
- g_clear_error (&err);
+ scanner_report_warning (css_provider, expected_token, priv->error);
+ g_clear_error (&priv->error);
+ priv->error = NULL;
}
css_provider_reset_parser (css_provider);